FIG. 1 is a block diagram of a typical digital communication system 100. As shown in FIG. 1, a digital source 110 produces a sequence of binary messages. Thereafter, an exemplary channel encoder 120 uses a forward error-correction coding scheme, to increase the redundancy of the source messages and to transform the source messages into encoded messages (often referred to as codewords). Generally, the error correction coding provides increased resilience to channel noise. A modulator 130 transforms the encoded messages into signals that are appropriate for transmission over a channel 140. These signals enter the channel 140 and are typically corrupted by noise and interference on the channel.
At the receiver, a demodulator 150 receives the noisy signals from the channel 140 and converts the received signals into blocks of symbols. A channel decoder 160 exploits the redundancy introduced by the channel encoder 120 to attempt to correct any errors added by the channel 140 and to restore the original messages. A number of different decoding techniques have been proposed or suggested to decode signals encoded using error correction codes
Error correction encoding techniques for wireless communication systems often employ convolutional or turbo coding of the data before the signal is modulated so that errors introduced by noise and interference on the channel may be corrected. Generally, a convolutional code is an error correction code where each m-bit string is transformed into an n-bit symbol, where m/n is the code rate (n is greater than or equal to m) and the transformation is a function of the previous k information symbols, where k is the constraint length of the code. Turbo codes are another class of error correction codes that are said to approach the theoretical limits imposed by Shannon's theorem with reduced decoding complexity relative to the convolutional codes that would be required for similar performance.
Increasingly, communication devices must support multiple communication standards. For example, each of the WiMAX (Worldwide Interoperability for Microwave Access) (an IEEE 802.16 wireless broadband standard), LTE (Long Term Evolution) (a 3GPP 4G technology), UMB (Ultra Mobile Broadband) (a CDMA Development Group and 3rd Generation Partnership Project 2) and WCDMA (Wideband Code Division Multiple Access) communication standards require support for at least one convolutional encoding technique and at least one convolutional turbo encoding technique (or a combination thereof), at one or more rates.
Thus, a need exists for reconfigurable or programmable decoders that can support multiple communication standards. A further need exists for a programmable coder/decoder (codec) that supports encoding or decoding (or both) and symbol processing functions for a number of different existing and future communication standards.